#include<stdio.h>

//第二章2.5 - 求5！
// int main()
// {
//     int t=1;
//     int i=2;
//     while(i<=5)
//     {
//         t=i*t;
//         i=i+1;
//     }
//     printf("%d\n",t);
//     return 0;
// }

// 2.19. 求多项式1 - 二分之一 + 三分之一 -四分之一 + 99分之一 - 100分之一的值

// int main()
// {
//     int sign=1;
//     double deno=2.0,sum=1.0,term;
//     while(deno<=100)
//     {
//         sign=-sign;
//         term=sign/deno;
//         sum=sum+term;
//         deno=deno+1;
//     }
//     printf("%f\n",sum);
//     return 0;
// }

//  3.1华氏度转摄氏度
// int main()
// {
//     double f;
//     scanf("%lf ",&f); //哥们儿老把这个lf写成1f啊！！！
//     double c=(f-32)*5/9;
//     printf("%.2f华氏度是%.2f摄氏度\n",f,c);
//     return 0;
// }

// 例3.2  计算存款利息
// int main()
// {
//     float p0=1000;
//     float r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;
//     p1=p0*(1+r1);
//     p2=p0*(1+r2);
//     p3=p0*(1+r3/2)*1+(r3/2);
//     printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);
//     return 0;
// }

//符号常量   用#define 用一个符号名称代表一个常量
// #define PI 3.1416  // 把所有PI全部置换为3.1416

// p3.3  给定一个大写字母 ，要求用小写字母输出 
//同一字母，其小写ASCII码值比大写的大32
// void main()
// {
//     char c1,c2;
//     c1='A';
//     c2=c1+32;
//     printf("%c\n",c2);  //输出c2的值，是一个字符
//     printf("%d\n",c2);  //输出c2的值，是字符'a'的ASCII的码值
// }

// 例3.4 给三角形三边长，求三角形面积
// 海伦公式 S = √[s(s - a)(s - b)(s - c)]  s=(a+b+c)/2
//sqrt是C语言函数中求平方根的
// void main()
// {
//     double a,b,c,s,area;
//     scanf("%lf %lf %lf",&a,&b,&c);//a:1.2 b:2.4 c:3.6
//     if(a+b>c&&a+c>b&&b+c>a)
//     {
//     s=(a+b+c)/2;
//     area=sqrt(s*(s-a)*(s-b)*(s-c));
//     printf("a=%f\tb=%f\tc=%f\n",a,b,c);
//     printf("area=%f\n",area);
//     }
//     else
//         printf("输入的三边不满足构成三角形!\n");
// }

// 以上代码没有判断三角形两边之和是否大于第三边 ，所以在豆包的帮助下我加入了if判断

// 例3.5.1 求一元二次方程两实根
// void main()
// {
//     double a,b,c,disc, x1,x2,p,q;
//     scanf("%lf %lf %lf",&a,&b,&c);
//     disc=b*b-4*(a*c);
//     if(disc>0)
//     {
//     p=-b/(2.0*a);
//     q=sqrt(disc)/(2.0*a);
//     x1=p+q;x2=p-q;
//     printf("x1=%7.2f\n x2=%7.2f\n",x1,x2);
//     }
//     else if (disc==0)
//     {
//         x1=x2=-b/(2.0*a);
//         printf("x1=x2=%.2f\n",x1);
//     }
//     else
//         printf("该方程无实根!");
// }

//float型数据只有6-7位有效数字  
//i格式符：十进制整型数据的实际长度输出
//o格式符：八进制整数形式输出
//u格式符:输出无符号数（unsigned）型数据，以十进制整数形式输出
//g格式符：输出浮点数

//3.5.5
// void main()
// { // putchar输出字符
//     char a='B',b='O',c='Y';
//     putchar(a);
//     putchar(b);
//     putchar(c);
//     putchar('\n');
// }

// void main()
// {
//     char a,b,c;
//     a=getchar();
//     b=getchar();
//     c=getchar();
//     putchar(a);
//     putchar(b);
//     putchar(c);
//     putchar('\n');
// }

// 第四章 选择结构程序设计

// 4.2 输入两个实数，按由小到大的顺序输出这两个数 
// A和B杯子中的水互换
// int main()
// {
//     float a,b,t;
//     scanf("%f %f",&a,&b);
//     if(a>b)
//     {
//         //将a和b的值互换
//         t=a;
//         a=b;
//         b=t;
//     }
//     printf("%5.2f,%5.2f\n",a,b);
//     return 0;
// } 

// 4.3 输入3个数ABC，按由小到大的顺序输出
// int main()
// {
//     float a,b,c,t;
//     scanf("%f %f %f",&a,&b,&c);
//     if(a>b)
//     {
//         t=a;
//         a=b;
//         b=t;
//     }
//     if(a>c)
//     {
//         t=a;
//         a=c;
//         c=t;
//     }
//     if(b>c)
//     {
//         t=b;
//         b=c;
//         c=t;
//     }
//     printf("%5.2f %5.2f %5.2f",a,b,c);
//     return 0;
// }

//4.4.2  判断闰年
// void main()
// {
//     int year;
//     scanf("%d",&year);
//     if((year%4==0 && year%100!=0)||year%400==0)
//         printf("是闰年");
//     else
//         printf("不是闰年");
// }

// 4.4 大写字母转换成小写字母
// void main()
// {
//     char ch;
//     scanf("%c",&ch);
//     ch=(ch>='A'&&ch<='z')?(ch+32):ch;
//     printf("%c\n",ch);

// }

// 4.7 switch语句
// A:85以上 B：70-84 C：60-69 D:60以下
// void main()
// {
//     char grade;
//     scanf("%c",&grade);
//     printf("Your Score:");
//     switch(grade)
//     {
//         case 'A':printf("85-100\n");break;
//         case 'B':printf("70-84\n");break;
//         case 'C':printf("60-69\n");break;
//         case 'D':printf("<60\n");break;
//         default:printf("enter data error!\n");
//     }
// }

//第六章
// 例6.1
// void main()
// {
//     int i,a[10];
//     for(i=0;i<=9;i++)
//     {
//         a[i]=i;
//     }
//     for(i=9;i>=0;i--)
//         printf("%d ",a[i]);
//     printf("\n");
// }

// 例6.2 用数组来处理Fibonacci数列问题
// void main()
// {
//     int i;
//     int f[20]={1,1};
//     for(i=2;i<20;i++)
//     {
//         f[i]=f[i-2]+f[i-1];
//     }
//     for(i=0;i<20;i++)
//     {
//         if(i%5==0)
//             printf("\n");
//         printf("%12d",f[i]);
//     }
//     printf("\n");
// }

// 例6.3 有十个地区的面积
// void main()
// {
//     int a[10];
//     int i,j,t;
//     printf("请输入10个数:\n");
//     for(i=0;i<10;i++)
//         scanf("%d",&a[i]);
//     printf("\n");
//     for(j=0;j<9;j++)
//     {
//         for(i=0;i<9-j;i++)
//             if(a[i]>a[i+1]){
//                 t=a[i];a[i]=a[i+1];a[i+1]=t;
//             }
//     }
//     printf("从小到大依次为:\n");
//     for(i=0;i<10;i++)
//         printf("%d ",a[i]);
//     printf("\n");
// }

// 例子将一个二位数组行和列的元素互换，存到另一个二维数组中
//a= 1  2  3            1  4 
//   4  5  6          b=2  5
//                      3  6 
// void main()
// {
//     int a[2][3]={{1,2,3},{4,5,6}};
//     int b[3][2],i,j;
//     printf("array a:\n");
//     for(i=0;i<=1;i++)
//     {
//         for(j=0;j<=2;j++)
//         {
//             printf("%5d",a[i][j]);
//             b[j][i]=a[i][j];
//         }
//         printf("\n");
//     }
//     printf("array b:\n");
//     for(i=0;i<=2;i++)
//     {
//         for(j=0;j<=1;j++)
//         {    
//             printf("%5d",b[i][j]);
//         }
//         printf("\n");
//     }
// }

// 例6.5 有一个3x4的矩阵，要求编程求出其中值最大的那个元素的值，以及其所在的行号和列号。
// void main()
// {
//     int i,j,row=0,colum=0,max;
//     int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
//     max=a[0][0];
//     for(i=0;i<=2;i++)
//     {
//         for(j=0;j<=3;j++)
//         {
//             if(a[i][j]>max)
//             {
//                 max=a[i][j];
//                 row=i;
//                 colum=j;
//             }
//         }
//     }
//     printf("max=%d\nrow=%d\n,colum=%d\n",max,row,colum);
// }

// 例子6.7 输出菱形图
//  *
// * *
//*   *
// * *
//  *
// void main()
// {
//     char diamond[][5]={{' ',' ','*',},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};
//     int i,j;
//     for(i=0;i<5;i++)
//     {
//         for(j=0;j<5;j++)
//         {
//             printf("%c",diamond[i][j]);
//         }
//         printf("\n");
//     }
// }

//p157
// void main()
// {
//     char str[13];
//     scanf("%s",str);
//     printf("%s",str);
// }

//例 6.8
// void main()
// {
//     char string[81];//超过80个字符会导致缓冲区溢出
//     int i,num=0,word=0;//word是一个状态标志
//     char c;            //word=0,当前不在单词中
//     gets(string);      //word=1,当前在单词中
//     for(i=0;(c=string[i])!='\0';i++)
//         if(c==' ')
//             word=0;
//         else if(word==0)
//         {
//             word=1;
//             num++;
//         }
//     printf("There are %d words in this line.\n",num);
// }

// 例6.9
// #include<string.h>
// void main()
// {
//     char str[3][20];
//     char string[20];
//     int i;
//     for(i=0;i<3;i++)
//     {
//         gets(str[i]);
//     }
//     if(strcmp(str[0],str[1])>0)
//         strcpy(string,str[0]);
//     else
//         strcpy(string,str[1]);
//     if(strcmp(str[1],str[2]))
//         strcpy(string,str[2]);
//     printf("The biggest string is:%s\n",string);
// }

